﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Inspired.Euler.Tests
{
    /// <summary>
    /// Tests for problems from 120 to 129
    /// </summary>
    [TestClass]
    public class Problems120To129
    {
        [TestMethod]
        [Description("Finding the maximum remainder when (<i>a</i> &minus; 1)<sup><i>n</i></sup> + (<i>a</i> + 1)<sup><i>n</i></sup> is divided by <i>a</i><sup>2</sup>.")]
        public void Problem120()
        {
            Assert.AreEqual(-1, Euler.Problem120.Solve());
        }

        [TestMethod]
        [Description("Investigate the game of chance involving coloured discs.")]
        public void Problem121()
        {
            Assert.AreEqual(-1, Euler.Problem121.Solve());
        }

        [TestMethod]
        [Description("Finding the most efficient exponentiation method.")]
        public void Problem122()
        {
            Assert.AreEqual(-1, Euler.Problem122.Solve());
        }

        [TestMethod]
        [Description("Determining the remainder when (<i>p<sub>n</sub></i> &minus; 1)<sup><i>n</i></sup> + (<i>p<sub>n</sub></i> + 1)<sup><i>n</i></sup> is divided by <i>p<sub>n</sub></i><sup>2</sup>.")]
        public void Problem123()
        {
            Assert.AreEqual(-1, Euler.Problem123.Solve());
        }

        [TestMethod]
        [Description("Determining the <i>k</i><sup>th</sup> element of the sorted radical function.")]
        public void Problem124()
        {
            Assert.AreEqual(-1, Euler.Problem124.Solve());
        }

        [TestMethod]
        [Description("Finding square sums that are palindromic.")]
        public void Problem125()
        {
            Assert.AreEqual(-1, Euler.Problem125.Solve());
        }

        [TestMethod]
        [Description("Exploring the number of cubes required to cover every visible face on a cuboid.")]
        public void Problem126()
        {
            Assert.AreEqual(-1, Euler.Problem126.Solve());
        }

        [TestMethod]
        [Description("Investigating the number of <i>abc-hits</i> below a given limit.")]
        public void Problem127()
        {
            Assert.AreEqual(-1, Euler.Problem127.Solve());
        }

        [TestMethod]
        [Description("Which tiles in the hexagonal arrangement have prime differences with neighbours?")]
        public void Problem128()
        {
            Assert.AreEqual(-1, Euler.Problem128.Solve());
        }

        [TestMethod]
        [Description("Investigating minimal repunits that divide by <i>n</i>.")]
        public void Problem129()
        {
            Assert.AreEqual(-1, Euler.Problem129.Solve());
        }
    }
}
